const mammoth = require("mammoth");
const XLSX = require('xlsx');
const fs = require('fs');

const wordFilePath = 'path_to_your_word_document.docx';
const excelTemplatePath = 'path_to_your_excel_template.xlsx';
const updatedExcelPath = 'path_to_your_updated_excel_file.xlsx';

// 将Word文档转换为JSON对象
mammoth.convertToHtml({path: wordFilePath})
    .then(function(result){
        const rawHtml = result.value; // Word文档的HTML内容

        // 加载Excel模板
        const workbook = XLSX.readFile(excelTemplatePath);
        const sheetNameList = workbook.SheetNames;
        const worksheet = workbook.Sheets[sheetNameList[0]];

        // 假设我们有一个映射，它将Word中的段落或表格的索引映射到Excel中的行号
        // 你需要根据实际的Word文档结构和Excel模板来定义这个映射
        const wordToExcelMapping = {
            'firstParagraph': 'A1', // 示例：将第一个段落内容写入A1单元格
            // 添加更多映射...
        };

        // 使用正则表达式从HTML内容中提取第一个段落
        const firstParagraphMatch = rawHtml.match(/<p>(.*?)<\/p>/);
        const firstParagraph = firstParagraphMatch ? firstParagraphMatch[1] : '';

        // 将Word内容复制到Excel中
        for (let key in wordToExcelMapping) {
            let excelCell = wordToExcelMapping[key];

            // 根据key处理不同的Word内容
            if (key === 'firstParagraph') {
                // 将第一个段落的内容写入Excel单元格
                worksheet[excelCell] = { v: firstParagraph };
            }
        }

        // 保存更新后的Excel文件
        XLSX.writeFile(workbook, updatedExcelPath);
    })
    .catch(function(err){
        console.error("Error processing Word document:", err);
    });
